#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>

//3. 底层系统接口open使用测试
int main()
{
  umask(0);//取消掩码
  int fd = open("log.txt",O_RDONLY);//单独使用open，在没有文件Log.txt的情况下，不会自动创建该文件
  int fd1 = open("log.txt",O_WRONLY|O_CREAT|O_APPEND,0666);//o_creat：表示如果打开一个已经存在的文件，会清空文件使其成为空文件
  //0666：表示给所用用户设置读写权限
  printf("open success,fd %d\n",fd1);
  if(fd1<0)
  {
    perror("open");
    return 1;
  }
  char buffer[64];
  memset(buffer,'\0',sizeof(buffer));//将Buffer字符串中全部初始化成\0
  read(fd1,buffer,sizeof(buffer));
 
  const char*s = "hello nuist!\n";
  write(fd1,s,strlen(s));

  close(fd);
  close(fd1);
  return 0;
}



//2. 测试stdin\stdout\stderr内部的fd
//int main()
//{
//  printf("stdin:%d\n",stdin->_fileno);
//  printf("stdout:%d\n",stdout->_fileno);
//  printf("stderr:%d\n",stderr->_fileno);
//  return 0;
//}
//

//1.知识点：按照只读的方式实现文件操作
//int main()
//{ //以只读的方式打开文
//件log.tex FILE*fp = fopen("log.txt","w");
//  if(fp == NULL)
//  {
//    perror("fopen");
//    return 1;
//  }
//
//  //文件操作
//  const char*s1 = "hello , fwrite\n";
//  fwrite(s1,strlen(s1),1,fp);
//
//  const char*s2 = "hello , fprintf\n";
//  fprintf(fp,"%s",s2);
//
//  const char*s3 = "hello fputs\n";
//  fputs(s3,fp);
//
//  //关闭文件
//  fclose(fp);
//  return 0;
//}
